core: Use gs_file_create()
authorColin Walters <walters@verbum.org>
Tue, 16 Jul 2013 12:49:46 +0000 (08:49 -0400)
committerColin Walters <walters@verbum.org>
Tue, 16 Jul 2013 12:51:53 +0000 (08:51 -0400)
This allows us to drop a chmod() invocation, since the regular file
path was the only thing that didn't handle mode.

src/libostree/ostree-core.c

index 4e9fdf98ef0a9f4e9cd662e71ab5fb7d430e71c8..e6104dd405ab475966e122000679291c6011d83e 100644 (file)
@@ -1211,7 +1211,7 @@ ostree_create_file_from_input (GFile            *dest_file,
   gboolean ret = FALSE;
   const char *dest_path;
   guint32 uid, gid, mode;
-  gs_unref_object GFileOutputStream *out = NULL;
+  gs_unref_object GOutputStream *out = NULL;
 
   if (g_cancellable_set_error_if_cancelled (cancellable, error))
     return FALSE;
@@ -1236,8 +1236,8 @@ ostree_create_file_from_input (GFile            *dest_file,
     }
   else if (S_ISREG (mode))
     {
-      out = g_file_create (dest_file, 0, cancellable, error);
-      if (!out)
+      if (!gs_file_create (dest_file, mode, &out,
+                           cancellable, error))
         goto out;
 
       if (input)
@@ -1296,16 +1296,6 @@ ostree_create_file_from_input (GFile            *dest_file,
         }
     }
 
-  if (!S_ISLNK (mode))
-    {
-      if (chmod (dest_path, mode) < 0)
-        {
-          ot_util_set_error_from_errno (error, errno);
-          g_prefix_error (error, "chmod(%u) failed: ", mode);
-          goto out;
-        }
-    }
-
   if (xattrs != NULL)
     {
       if (!ostree_set_xattrs (dest_file, xattrs, cancellable, error))